package common;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import db.DBManager;

public class Number {
	public static String getReceipt(){
		//データベースより区分(kind)で検索
		String sql = "select * from number where kind = 'RE';";
		String num = null;
		try{
			Connection con = null;
			Statement stm = null;
			ResultSet rs = null;
			
			con = DBManager.getConnection();//DBManeger
			stm = con.createStatement();
			rs = stm.executeQuery(sql);
			
			
			
			if(rs.next()){
				//データベースから取り出した最終更新の納品番号を代入
				num = rs.getString("num");
				
			}
			
			//計算するためにint型に変更
			int number = Integer.parseInt(num);//
			//最終更新した納品番号に1を足す。
			number++;
			//データベースに登録するためにString型に変更
			num = String.valueOf(number);
			//7桁にするために追加したプログラム
			StringBuffer ch_num = new StringBuffer();
			if(number<10){
				ch_num.append("000000"+num);
			}
			if(number>=10 && number<100){
				ch_num.append("00000"+num);
			}
			if(number>=100 && number<1000){
				ch_num.append("0000"+num);
			}
			if(number>=1000 && number<10000){
				ch_num.append("000"+num);
			}
			if(number>=10000 && number<100000){
				ch_num.append("00"+num);
			}
			if(number>=100000 && number<1000000){
				ch_num.append("0"+num);
			}
			if(number>=1000000 && number<10000000){
				ch_num.append(num);
			}
			num=ch_num.toString();
			
			//更新するためのSQL
			sql="UPDATE number SET num = ? where kind = 'RE'";
			PreparedStatement ps =con.prepareStatement(sql);
			
			ps.setString(1, num);
			
			ps.executeUpdate();
			
			stm.close();
			con.close();
			rs.close();
			ps.close();
			return num;
		}
		catch(SQLException e){
			e.printStackTrace();
		}
		return num;
	}
	
	public static String getOrder(){
		//データベースより区分(kind)で検索
		String sql = "select * from number where kind = 'OR';";
		String num = null;
		try{
			
			Connection con = null;
			Statement stm = null;
			ResultSet rs = null;
			
			con = DBManager.getConnection();//DBManeger
			stm = con.createStatement();
			rs = stm.executeQuery(sql);
			
			
			
			if(rs.next()){
				//データベースから取り出した最終更新の受注番号を代入
				num = rs.getString("num");
				
			}
			
			//計算するためにint型に変更
			int number = Integer.parseInt(num);//
			//最終更新した受注番号に1を足す。
			number++;
			//データベースに登録するためにString型に変更
			num = String.valueOf(number);
			//7桁にするために追加したプログラム
			StringBuffer ch_num = new StringBuffer();
			if(number<10){
				ch_num.append("000000"+num);
			}
			if(number>=10 && number<100){
				ch_num.append("00000"+num);
			}
			if(number>=100 && number<1000){
				ch_num.append("0000"+num);
			}
			if(number>=1000 && number<10000){
				ch_num.append("000"+num);
			}
			if(number>=10000 && number<100000){
				ch_num.append("00"+num);
			}
			if(number>=100000 && number<1000000){
				ch_num.append("0"+num);
			}
			if(number>=1000000 && number<10000000){
				ch_num.append(num);
			}
			num=ch_num.toString();
			
			
			//更新するためのSQL
			sql="UPDATE number SET num = ? where kind = 'OR'";
			PreparedStatement ps =con.prepareStatement(sql);
			
			ps.setString(1, num);
			
			ps.executeUpdate();
			
			stm.close();
			con.close();
			rs.close();
			ps.close();
			
			
			
		}
		catch(SQLException e){
			e.printStackTrace();
		}
		return num;
		
	}
	
	
}
